ДЛЯ НОВИЧКОВНЕ ДЛЯ НОВИЧКОВНЕ ОБЯЗАТЕЛЬНОВ РАЗРАБОТКЕ
Разработчику
Архитектору
Инженеру
Чек-лист самопроверки
- Что такое процесс выполнения программы?
- Что такое поток выполнения?
- В чём разница между процессом и потоком?
- Почему потоки считаются «легковесными» по сравнению с процессами?
- Какие ресурсы разделяют потоки одного процесса?
- Какие ресурсы изолированы между разными процессами?
- Что такое гонка данных (race condition)?
- Какие механизмы синхронизации вы знаете?
- Что такое мьютекс и для чего он используется?
- Что такое семафор и чем он отличается от мьютекса?
- Что такое спинлок и когда его использование оправдано?
- Что такое атомарная операция?
- Почему атомарные операции не требуют явной блокировки?
- Что такое deadlock (взаимная блокировка)?
- Какие условия необходимы для возникновения deadlock?
- Что такое starvation (голодание) в контексте многопоточности?
- Что такое live-lock и чем он отличается от deadlock?
- Что такое конкурентность?
- Что такое параллелизм?
- Может ли система быть конкурентной, но не параллельной?
- Что такое стек вызовов (call stack)?
- Что такое куча (heap) и чем она отличается от стека?
- Что такое сборка мусора (Garbage Collection)?
- Как работает поколенческий сборщик мусора?
- Что такое утечка памяти и как она может возникнуть в управляемом коде?
- Что такое пул объектов и зачем он нужен?
- Что такое производительность программы?
- Какие основные метрики производительности вы знаете?
- Что такое latency (задержка) и throughput (пропускная способность)?
- Что такое узкое место (bottleneck) в системе?
- Что такое правило 90/10 в контексте оптимизации?
- Зачем нужно профилирование и чем оно отличается от простого замера времени?
- Что такое преждевременная оптимизация и почему её следует избегать?
- Как представляются целые числа в памяти компьютера?
- Что такое дополнительный код и зачем он используется?
- Что такое IEEE 754 и как он представляет числа с плавающей точкой?
- Что такое эндианность и почему она важна при работе с двоичными данными?
- Что такое битовые операции и где они применяются?
- Что такое исключение (exception) и как оно работает?
- Что такое раскрутка стека (stack unwinding)?
- Когда лучше использовать исключения, а когда — коды ошибок?
- Что такое неуправляемое исключение и к чему оно приводит?
- Зачем нужно логирование ошибок и какие уровни логирования существуют?
- Что такое асинхронное выполнение и чем оно отличается от синхронного?
- Что такое Event Loop и где он используется?
- Что такое callback и какие проблемы он может вызывать?
- Что такое корутины и как они упрощают асинхронное программирование?
- Как работают ключевые слова async и await?
- В чём разница между WebSocket и Server-Sent Events (SSE)?
- Какие современные технологии обеспечивают асинхронный обмен данными в вебе?